package net.sudot.chess.business.model;

import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import java.math.BigDecimal;
import java.time.Instant;

/**
 * 房间
 *
 * @author tangjialin on 2018-03-03.
 */
@Getter
@Setter
@Accessors(chain = true)
@Entity
public class Room extends BaseEntity<Room> {
    public enum Status {
        /** */ WAIT("等待中"),
        /** */ PLAYING("游戏中"),
        /** */ END("已结束"),
        /** */ CANCEL("已解散"),
        ;

        private String memo;

        Status(String memo) {
            this.memo = memo;
        }

        public String memo() {
            return memo;
        }
    }

    /** 房间所属游戏 */
    private Long gameId;
    /** 房间号 */
    private String sn;
    /** 房间外链 */
    private String url;
    /** 房间名称 */
    private String name;
    /** 期数 */
    private Integer period;
    /** 游戏单价(每人支付的价格) */
    private BigDecimal price;
    /** 大区 */
    private String region;
    /** 最大人数 */
    private Integer maxPeople;
    /** 房间当前人数 */
    private Integer people;
    /** 房间状态 */
    @Enumerated(EnumType.STRING)
    private Status status;
    /** 房间关闭时间 */
    private Instant closeDate;
    /** 房间管理的微信群 */
    private Long wechatGroupId;
    /** 房间管理的微信群名称 */
    private String wechatGroupName;

}
